isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
↳ QTRS
↳ DependencyPairsProof
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
LISTIFY2(n, xs) -> IF6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
LISTIFY2(n, xs) -> ELEM1(n)
IF6(false, false, n, m, xs, ys) -> LISTIFY2(m, xs)
TOLIST1(n) -> LISTIFY2(n, nil)
LISTIFY2(n, xs) -> RIGHT1(n)
LISTIFY2(n, xs) -> LEFT1(left1(n))
IF6(false, true, n, m, xs, ys) -> LISTIFY2(n, ys)
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
LISTIFY2(n, xs) -> LEFT1(n)
LISTIFY2(n, xs) -> RIGHT1(left1(n))
LISTIFY2(n, xs) -> ISEMPTY1(n)
LISTIFY2(n, xs) -> ISEMPTY1(left1(n))
LISTIFY2(n, xs) -> APPEND2(xs, n)
LISTIFY2(n, xs) -> ELEM1(left1(n))
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
LISTIFY2(n, xs) -> IF6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
LISTIFY2(n, xs) -> ELEM1(n)
IF6(false, false, n, m, xs, ys) -> LISTIFY2(m, xs)
TOLIST1(n) -> LISTIFY2(n, nil)
LISTIFY2(n, xs) -> RIGHT1(n)
LISTIFY2(n, xs) -> LEFT1(left1(n))
IF6(false, true, n, m, xs, ys) -> LISTIFY2(n, ys)
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
LISTIFY2(n, xs) -> LEFT1(n)
LISTIFY2(n, xs) -> RIGHT1(left1(n))
LISTIFY2(n, xs) -> ISEMPTY1(n)
LISTIFY2(n, xs) -> ISEMPTY1(left1(n))
LISTIFY2(n, xs) -> APPEND2(xs, n)
LISTIFY2(n, xs) -> ELEM1(left1(n))
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
POL( cons2(x1, x2) ) = x1 + x2 + 1
POL( APPEND2(x1, x2) ) = max{0, x1 + x2 - 1}
POL( y ) = 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
LISTIFY2(n, xs) -> IF6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
IF6(false, true, n, m, xs, ys) -> LISTIFY2(n, ys)
IF6(false, false, n, m, xs, ys) -> LISTIFY2(m, xs)
isEmpty1(empty) -> true
isEmpty1(node3(l, x, r)) -> false
left1(empty) -> empty
left1(node3(l, x, r)) -> l
right1(empty) -> empty
right1(node3(l, x, r)) -> r
elem1(node3(l, x, r)) -> x
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
listify2(n, xs) -> if6(isEmpty1(n), isEmpty1(left1(n)), right1(n), node3(left1(left1(n)), elem1(left1(n)), node3(right1(left1(n)), elem1(n), right1(n))), xs, append2(xs, n))
if6(true, b, n, m, xs, ys) -> xs
if6(false, false, n, m, xs, ys) -> listify2(m, xs)
if6(false, true, n, m, xs, ys) -> listify2(n, ys)
toList1(n) -> listify2(n, nil)